Basic Package (BAS)

©1995,1996 Richard B. Winston

Please Register Please Register

Last modified on Wednesday, January 31, 1996 - 4:50:48 PM

Skip forward to Input instructions for the Basic Package.

The original instructions for the Basic Package are on pages 4-9 to 4-12 of McDonald and Harbaugh (1988).

Introduction: The Basic Package is used to set up certain basic attributes of the problem: the grid structure, the packages to be used, certain boundary conditions, and the time periods to be simulated.

Go back to Contents.


Input instructions

All input parameters should be right justified. Don't forget that integers can not have a decimal point.

Go back to top of BASIC package
Go back to Contents

Line 1, Spaces 1-80, and Line 2, Spaces 1-52, Variable = Heading

Two lines must be reserved for the heading even if the heading only takes up one line or if no heading at all is used. On the first line you can use up to 80 spaces but on the second line you can only use 52 spaces. The heading is used to identify the what you are modeling or any aspect of the model that is important to you.

Go back to Input instructions for the BASIC Package
Go back to top of BASIC package


Line 3, Spaces 1-10, Variable = NLAY

NLAY is the number of layers in the model (Integer). It should be right justified within spaces 1-10.

The number of layers that you wish to include in your model depends on how detailed you wish the model to be and the geology of the region you wish to model. The maximum number of layers is 80. The source code for the Block Centered Flow module would have to be altered and the program recompiled to increase the number of layers above 80.

Although, NLAY only sets the number of layers and not their boundaries, you need to understand how the boundaries between layers are picked before you can specify the number of layers. Usually each aquifer in the model is treated as a separate layer. Confining beds may be treated as layers if desired or they can be left out. In the latter case, the leakance term which determines vertical flow between adjacent aquifers would be set so as to take into account the properties of the confining beds. If an aquifer is split into two parts by a laterally discontinuous confining bed, you will need at least two layers to represent the aquifer. If vertical differences in head within an aquifer are important to you, you will need to have at least two layers within the aquifer and possibly more. Usually the upper and lower boundaries of each layer are set so that they follow natural hydrologic boundaries of the system of interest rather than being flat surfaces.

Go back to Input instructions for the BASIC Package
Go back to top of BASIC package


Line 3, Spaces 11-20, Variable = NROW

NROW is the number of rows in the model (Integer). It should be right justified. The number of rows that you wish to include in your model depends on how detailed you wish the model to be.

Although NROW only specifies the number of rows and not their width, you need to know about setting up the grid before you can determine the number of rows. Rows and columns need not all be the same width although the width of any particular row or column is the same throughout the model. Anderson and Woessner (1992) give the following advice on setting up the grid. Grid cells should be smaller in areas that are especially important for some reason or where the change in head between adjacent cells is likely to be large. If the hydraulic conductivity in the X direction differs from the hydraulic conductivity in the Y direction the grid should be oriented so that the maximum and minimum hydraulic conductivities lie parallel to the grid axes. Otherwise, the grid should be oriented to minimize the number of inactive cells. If you use rows or columns with unequal width, avoid changes in row or column width greater than 50% between adjacent cells. (I.e. the wider row or column should be no wider than 150% of the width of it's neighboring narrower row or column.) Unequal row or column widths cause numerical errors. These become larger as the difference in size between adjacent rows and columns increases.

Go back to Input instructions for the BASIC Package
Go back to top of BASIC package


Line 3, Spaces 21-30, Variable = NCOL

NCOL is the number of columns in the model (Integer). It should be right justified. The number of columns that you wish to include in your model depends on how detailed you wish the model to be. See NROW for a discussion of grid design.

Go back to Input instructions for the BASIC Package
Go back to top of BASIC package


Line 3, Spaces 31-40, Variable = NPER

NPER is the number of stress periods in your model (Integer). It should be right justified. For a steady state model, you should set NPER = 1. Within each stress period, the stresses, such as rate of recharge or pumpage, are constant. Each stress period will include one or more time steps. The length of the time steps affects the accuracy of the model (see NSTP) but because you can have multiple time steps in each stress periods the length of stress periods does not affect the accuracy of the model so long as they reflect the variations in stresses accurately enough for the purposes of the model.

Go back to Input instructions for the BASIC Package
Go back to top of BASIC package


Line 3, Spaces 41-50, Variable = ITMUNI

ITMUNI = time unit of model (Integer). It should be right justified. The calculations are not affected by ITMUNI. ITMUNI is used to convert the cumulative simulation time to a variety of units. Go back to Input instructions for the BASIC Package
Go back to top of BASIC package

Line 4, Array = IUNIT, Format = 24I3

The IUNIT Array is used to specify which packages will be used in the program. You do this by assigning a unit number for the input files for each package that you use. During execution of MODFLOW, you will be prompted to assign a file name to each unit number. In some (perhaps all) commercial versions of MODFLOW, The prompt will include the name of the package and may or may not tell you the file number. The unmodified program prompts you only with the unit number and no other identifying information. You will need to use the same unit numbers you use here later on when you prepare the input files for each of the individual packages. You could have a single input file which contained all the input data for all the packages. However, this is not recommended procedure and would making preparation of the input file more difficult. It is better to have a different unit number for each package. The numbers can be integers from 1 to 99 with some limitations. The input number for the basic package is defined within the source code. In the original version of MODFLOW, it was set at 1. I have seen another version where it was set at 5. Printer output is assigned to unit 6. Thus, it would be a good idea to avoid assigning 1, 5, or 6 to any of the packages. Choose an arbitrary unit number for each package and assign them as follows unless the documentation for your version of MODFLOW specifies a different order. (Assign a unit number of 0 to all packages you are not using.) Go back to Input instructions for the BASIC Package
Go back to top of BASIC package

Line 5, Spaces 1-10, Variable = IAPART

IAPART is an option which allows you to keep the BUFF array separate for the RHS array. If IAPART = 0 they are not kept separate, otherwise they are kept separate. This option was not required in the original version of MODFLOW but was included to increase the flexibility of MODFLOW. Thus far, the only package of which I am aware that require the BUFF and RHS arrays be kept separate is BCF3 and then only if LAYAVG=3. Other future packages may also require this option. IAPART is an Integer and should be right justified.

Go back to Input instructions for the BASIC Package
Go back to top of BASIC package


Line 5, Spaces 11-20, Variable = ISTRT

ISTRT = 0 if starting heads are not to be saved. ISTRT = 1 (or another nonzero integer) if they are to be saved. You need to save the starting heads if you wish MODFLOW to calculate and report drawdown. ISTRT is an integer and should be right justified.

Go back to Input instructions for the BASIC Package
Go back to top of BASIC package


Lines 6+, Array = IBOUND(NCOL,NROW) Array, entered using U2DINT

The IBOUND array is used to specify whether an individual grid cell has a constant head, is inactive, or is a variable head cell. Within MODFLOW, IBOUND is a three dimensional array but it is entered as a series of two dimensional arrays using U2DINT; one array for each layer in the grid. The first layer is at the top of the model. Columns are numbered from left to right. Rows are numbered from top to bottom.
If C=Column, R=Row, and L=Layer, the elements of the IBOUND array can be specified as IBOUND(C,R,L) A common practice is to use 1's, -1's, and 0's in the first layer, 2's, -2's, and 0's in the second layer, etc. Cells which dry out during a simulation will become inactive cells until and unless they rewet. (See BCF2 or BCF3.)
You may desire to specify different heads for a cell in different stress periods. You can do this by designating them as variable head cells here and using either the Time-Variant Specified-Head Package or the General-Head Boundary Package. The Time-Variant Specified-Head Package is usually the better method.
Enter data for all layers before moving on to the Lines 7+.

Go back to Input instructions for the BASIC Package
Go back to top of BASIC package


Line 7, Spaces 1-10, Variable = HNOFLO

HNOFLO is the head value which will be assigned to inactive cells either because they were originally defined as being inactive or because they have dried up. It should be right justified. HNOFLO should be very different from anything you expect to occur during the simulation. 999.99 might be a good choice.

Go back to Input instructions for the BASIC Package
Go back to top of BASIC package


Lines 8+, Array = Shead(NCOL,NROW) entered using U2DREL

The Shead array is used to specify the starting head for the model. For steady state models, the only effect of the starting head should be the time required to converge to a solution. In transient models, the starting head may have a large influence on the outcome. Often, the output of a steady state model is used as the starting head of a transient model. The starting heads are entered as a series of two dimensional arrays using U2DREL: one array for each layer in the grid.
Enter data for all layers before moving on to the Lines 7+.

Go back to Input instructions for the BASIC Package
Go back to top of BASIC package


Lines 9+

For each stress period as specified in NPER, use one line containing

Lines 9+ Spaces 1-10, Variable = PERLEN

PERLEN is the length of the stress period. It should be right justified. A stress period is a time period during which all hydrologic stresses, such as pumpage or recharge, remain constant.

Lines 9+ Spaces 11-20, Variable = NSTP, (Integer)

NSTP is the number of time steps in the stress period. It should be right justified. According to Anderson and Woessner (1992) a good rule of thumb is that the time step in a two dimensional areal model with square grid cells should not exceed Sa^2/4T where a=the length of a side of a representative grid cell, T=transmissivity, and S=the storage coefficient (dimensionless). The storage coefficient equals the Specific Storage x aquifer thickness for confined aquifers, or the Specific yield for unconfined aquifers.

If you are using the Interbed Storage Package, the time step must be long enough for excess pore pressure in the interbeds to dissipate.

Lines 9+ Spaces 21-30, Variable = TSMULT

It is often a good idea to have shorter time steps at the beginning of stress periods and longer ones at the end of stress periods. You can do this by setting TSMULT to a value greater than 1. It should be right justified. The length of each successive time step will be determined by multiplying the length of the previous time step by TSMULT. The length of the first time step, DELT(1) = PERLEN(1-TSMULT)/(1-TSMULT^NSTP). The length of any other time step is, DELT(i) = DELT(1)*TSMULT^(i-1).

Go back to Input instructions for the BASIC Package
Go back to top of BASIC package
Go back to Contents



©1995, 1996 Richard B. Winston,
rwinsto@lsuvm.sncc.lsu.edu
Dept. of Geology and Geophysics
Louisiana State University
Baton Rouge, La 70803
U.S.A.
504-388-2337
Fax 504-388-2302
http://scribe.geol.lsu.edu/rbwinston.html
ftp://aapg.geol.lsu.edu/pub/winston